package com.zp.business.entity.patient;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zp.common.core.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 门诊就诊记录对象 clinic_master
 *
 * @author zhang peng
 * @ date 2023-12-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("clinic_master")
public class ClinicMaster extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

    /**
     * 病历簿号
     */
    private String recordNo;

    /**
     * 第一次保存病历
     */
    private Date firstClinicRecord;

    /**
     * 第一次开单时间
     */
    private Date firstOrder;

    /**
     * 第一次收费时间
     */
    private Date firstCharge;

    /**
     * 第一次检查确认时间
     */
    private Date firstExamConfirm;

    /**
     * 第一次检验确认时间
     */
    private Date firstLabConfirm;

    /**
     * 第一次取西药时间
     */
    private Date firstTakeDrug;

    /**
     * 第一次取中药时间
     */
    private Date firstTakeZdrug;

    /**
     * 机构ID
     */
    private String orgId;

    /**
     * 挂号类型 0：当日挂号 1：预约挂号
     */
    private String registType;

    /**
     * 是否急诊（N非急诊，Y急诊）
     */
    private String isEmergency;

    /**
     * 病人信息Id
     */
    private String patientId;

    /**
     * 就诊日期
     */
    private Date visitDate;

    /**
     * 就诊序号
     */
    private Integer visitNo;

    /**
     * 门诊号
     */
    private String clinicNo;

    /**
     * 号表ID
     */
    private String registId;

    /**
     * 姓名
     */
    private String name;

    /**
     * 姓名拼音码
     */
    private String inputCode;

    /**
     * 性别
     */
    private String sex;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 年龄-月
     */
    private Integer ageMonth;

    /**
     * 年龄-天
     */
    private Integer ageDay;

    /**
     * 年龄-时
     */
    private Integer ageHours;

    /**
     * 年龄-分
     */
    private Integer ageMinutes;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 住址
     */
    private String address;

    /**
     * 现住址代码
     */
    private String addressCode;

    /**
     * 身份证号
     */
    private String idNo;

    /**
     * 监护人姓名
     */
    private String guardianName;

    /**
     * 监护人电话
     */
    private String guardianPhone;

    /**
     * 出生日期
     */
    private Date birthdayDate;

    /**
     * 婚姻
     */
    private String marriage;

    /**
     * 体重
     */
    private String weight;

    /**
     * 民族
     */
    private String nation;

    /**
     * 国籍
     */
    private String nationality;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 籍贯代码
     */
    private String nativePlaceCode;

    /**
     * 邮编
     */
    private String zipCode;

    /**
     * 出生地
     */
    private String homePlace;

    /**
     * 出生地代码
     */
    private String homePlaceCode;

    /**
     * 乡组
     */
    private String countryGroup;

    /**
     * 联系人关系
     */
    private String contactsRelation;

    /**
     * 联系人
     */
    private String contacts;

    /**
     * 联系人身份证
     */
    private String contactsIdNo;

    /**
     * 联系人地址
     */
    private String contactsAddress;

    /**
     * 联系人电话
     */
    private String contactsPhone;

    /**
     * 身份
     */
    private String identity;

    /**
     * 文化程度
     */
    private String eduLevel;

    /**
     * 费别
     */
    private String chargeType;

    /**
     * 医保类别
     */
    private String insuranceType;

    /**
     * 患者医保来源 1本市 2省内 3全国
     */
    private String source;

    /**
     * 患者来源
     */
    private String clinicSource;

    /**
     * 初诊标志
     */
    private String firstVisitIndicator;

    /**
     * 医疗保险号
     */
    private String insuranceNo;

    /**
     * 医保就医登记流水号
     */
    private String residenceNo;

    /**
     * 合同单位
     */
    private String unitInContract;

    /**
     * 单位税号
     */
    private String unitEin;

    /**
     * 就诊科室
     */
    private String deptId;

    /**
     * 医生Id
     */
    private String doctorId;

    /**
     * 挂号状态
     */
    private String clinicType;

    /**
     * 实收费用
     */
    private BigDecimal clinicChage;

    /**
     * 退号日期
     */
    private Date registDate;

    /**
     * 退号操作员
     */
    private String registOperator;

    /**
     * 退号结账
     */
    private String registNo;

    /**
     * 结账时间
     */
    private Date acctDateTime;

    /**
     * 转诊次数
     */
    private Integer referralNum;

    /**
     * 结账号
     */
    private String acctNo;

    /**
     * 标志
     */
    @TableLogic
    private String delFlag;
    /**
     * 备注信息
     */
    private String remarks;
    /**
     * 是否体检
     */
    private String isPhy;
    /**
     * 行程码
     */
    private String tripCode;
    /**
     * 健康码
     */
    private String healthyCode;
    /**
     * 1个检2团检
     */
    private String flag;
    /**
     * 支付方式1个人支付2集体支付
     */
    private String chargeFlag;
    /**
     * 把患者状态修改成未应诊的医生ID
     */
    private String unattendedDoctor;
    /**
     * 1为登记2为撤销（msip新医保登记状态）
     */
    private String registerFlag;
    /**
     * 结算号
     */
    private String serialNo;
    /**
     * 谈判处方读卡登记标识1已登记
     */
    private String readFlag;
    /**
     * 便民平台挂号支付Id
     */
    private String ptPayId;
    /**
     * 门诊标志,急诊转诊
     */
    private String otpErReflFlag;
    /**
     * 就医人群类型
     */
    private String mdtrtGrpType;
    /**
     * 外伤标志
     */
    private String trumFlag;
    /**
     * 涉及第三方标志
     */
    private String relTtpFlag;
    /**
     * 熔断后异常信息
     */
    @TableField(exist = false)
    private String exceptionCode;

    public void initEntity () {
        this.delFlag = "0";
    }

}
